【CSS】@media - スタイルの適用条件

【CSS】@media - スタイルの適用条件

CSSの@mediaについて解説します。

検証環境

@media

@mediaはメディアごとのスタイルを定義します。

メディアとはデバイス(ディスプレイやプリンタ等)や画面及び出力のサイズです。

主にデスクトップパソコンやスマートフォンなど画面サイズが異なるデバイスに対応したレスポンシブデザインを作成する際に使用します。

基本構文

@media 条件 {
    スタイル
}

条件の部分にはメディアタイプやメディア特性などを指定し、またそれらを組み合わせることも可能です。

メディアタイプ

メディアタイプはディスプレイや印刷などの出力先です。

@media タイプ {
    スタイル
}

主なタイプは次の通りです。

タイプ 説明
screen ディスプレイ
print 印刷
<style>
@media screen {
    p {
        color: red;
    }
}
</style>

<p>TEXT TEXT TEXT TEXT</p>

メディア特性

メディア特性はデバイスやブラウザなどのサイズです。

@media (特性名: 値) {
    スタイル
}

主な特性は次の通りです。

特性 説明
min-width Webブラウザの横幅が値以上
max-width Webブラウザの横幅が値以下
min-height Webブラウザの縦幅が値以上
max-height Webブラウザの縦幅が値以下
min-device-width デバイスの横幅が値以上
max-device-width デバイスの横幅が値以下
min-device-height デバイスの縦幅が値以上
max-device-height デバイスの縦幅が値以下

次のサンプルはp要素のテキストカラーを赤色にしていますが、Webブラウザの横幅が600px以下の場合は青色になります。

デスクトップパソコンとスマートフォンでこのプレビューを比較すると色が異なることが確認できます。

<style>
p {
    color: red;
}

@media ( max-width: 600px ) {
    p {
        color: blue;
    }
}
</style>

<p>TEXT TEXT TEXT TEXT</p>

メディアクエリー

メディアクエリーはメディアタイプやメディア特性の条件を結合するキーワードです。

@media 条件 結合子 条件 {
    スタイル
}
結合子 説明
and 両方の条件を満たす。
, いずれかの条件を満たす。
not 条件を満たさない。

次のサンプルはp要素のテキストカラーを赤色にしていますが、ディスプレイかつ横幅が600px以下の場合は青色に設定しています。

デスクトップとスマートフォンでこのプレビューを比較すると色が異なることが分かります。

<style>
p {
    color: red;
}

@media screen and ( max-width: 600px ) {
    p {
        color: blue;
    }
}
</style>

<p>TEXT TEXT TEXT TEXT</p>